import './styl/index.sass';

import Vue from 'Vue';

window.onload = async function() {
	// Vue
	window.Vue = Vue;

	// 输出 Log
	window.L = (0 || console).log;

	// --------------基础组件--------------

	// 全局共享数据 Bus
	const { B } = await import(/* webpackChunkName: 'BusStatic' */'./libs/Bus');
	window.B = B;
	// // 全局共享函数（非工具类） Bus Function X
	// const { X } = await import(/* webpackChunkName: 'BusStatic' */'./libs/bun');
	// window.X = X;

	// 通讯请求 Connect
	const { A } = await import(/* webpackChunkName: 'Connect' */'./libs/Connect');
	window.A = A;

	// // Vue组件总线 Vue Component Bus
	// const { V } = await import(/* webpackChunkName: 'Vomp' */'./libs/vomp');
	// window.V = V;

	// 时间格式化 Moment
	const { Moment } = await import(/* webpackChunkName: 'Moment' */'./libs/pub/Moment');
	window.M = Moment;

	// 全局函数 Util
	window.U = await import(/* webpackChunkName: 'Util' */'./libs/Util');

	// // 视图 View
	// await import(/* webpackChunkName: 'View' */'./libs/view');

	// // --------------外部基础组件--------------

	// // 图标 Fontawesome
	// await (await import(/* webpackChunkName: 'Fontawesome' */'./libs/pub/fontawesome')).default();

	// // 弹窗 Tippy
	// await (await import(/* webpackChunkName: 'Tippy' */'./libs/pub/tippy')).default();


	// 二级基础组件 Public Components
	await import(/* webpackChunkName: 'Pomp' */'./libs/pomp');

	// 时间格式化 Moment
	const { EvalTool } = await import(/* webpackChunkName: 'EvalTool' */'./libs/EvalTool');
	B.EvalTool = EvalTool;

	// 时间格式化 Moment
	const { Timing } = await import(/* webpackChunkName: 'EvalTool' */'./libs/Timing');
	B.Timing = Timing;

	// --------------主应用初始化--------------

	// 新组件自动注册组件总线
	Vue.mixin({
		data() {
			return { B };
		},
	});

	// 主组件 App
	Vue.component('App', (await import(/* webpackChunkName: 'App' */'./App')).default);
	Vue.component('Module', (await import(/* webpackChunkName: 'App' */'./global/Module')).default);

	// 主应用 App
	window.App = new Vue({ el: '#App', data: {} });
};